const MyPromise = require("./MyPromise");
// let promise = new MyPromise((resolve, reject) => {
//     // 异步操作
//     // setTimeout(() => {
//     //     resolve("成功...");
//     //     // reject("失败")
//     // }, 2000);

//     // throw new Error("executor error")
//     // resolve("成功...");
//     reject("失败")
// });

// function other() {
//     return new MyPromise((resolve, reject) => {
//         resolve("other")
//     })
// }

function p1() {
    return new MyPromise((resolve, reject) => {
        setTimeout(() => {
            // resolve('p1')
            reject("p1")
        }, 2000);
    })
}

function p2() {
    return new MyPromise((resolve, reject) => {
        // reject('p2')
        resolve('p2')
    })
}

// promise.then().then().then(value => {
//     console.log(value)
// }, reason => {
//     console.log(reason)
// })

// MyPromise.all(['a', 'b', p1(), p2(), 'c']).then(result => {
//     console.log(result)
// })

// MyPromise.resolve(100).then(value => console.log(value))
// MyPromise.resolve(p2()).then(value => console.log(value))

// p2().finally(() => {
//     console.log("finally")
//     return p1()
// }).then(value => {
//     console.log(value)
// }, reason => {
//     console.log(reason)
// })

p2().then(value => console.log(value))
p1().catch(reason => console.log(reason))